<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 块级作用域 (ES6新增)  => 带有{}的代码执行区域 
    //   注意: 对象是键值对的集合,用于描述数据,不是块级作用域

    // if () { }

    // if () {

    // } else {

    // }

    // if () {

    // } else if () {

    // } else {

    // }

    // switch(){}

    // while(){}
    // do{}while()
    // for(){}

    // function(){}

    // if (true) {
    //     console.log(11111);
    // }


    // 注意: 对象是键值对的集合,用于描述数据,不是块级作用域
    // var obj = {
    //     a: 1,
    //     b: 2,
    //     console.log(11111);
    // }


    // 最纯净的块级用域

    //  ES6新增块级作用域 , 块级作用域中let 和 const声明的变量是局部的 块级作用域对var没有影响(块级作用域->在全局作用域内 var声明的变量 ->全局, 块级作用域->在函数作用域内 var声明的变量 ->局部)

    debugger;
    {
        var a = 10;
        let b = 20;
        const c = 30;
        console.log(a, b, c);
    }
    console.log(a);
    // console.log(b);   b is not defined
    // console.log(c);   c is not defined


</script>

</html>